package com.ktjiaoyu.server.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ktjiaoyu.server.pojo.Admin;
import com.ktjiaoyu.server.pojo.RespBean;
import com.ktjiaoyu.server.pojo.Role;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author jieGe
 * @since 2022-05-19
 */
public interface IAdminService extends IService<Admin> {

    RespBean login(String username, String password,String code, HttpServletRequest requet);

    // 根据用户名获取用户的完整对象
    Admin getAdminByUserName(String username);

    /**
     * 分页显示管理员列表
     * @param page 分页所需要的Page集合
     * @param query 查询条件(按用户名或手机号模糊查询)
     */
    IPage<Admin> selectByPage(Page<Admin> page, String query, String sort);

    //修改操作员信息
    int updateAdmin(Admin admin);

    //保存操作员新镇信息
    boolean saveAdmin(Admin admin);

    //通过操作员用户ID查询其拥有的角色列表
    List<Role> findRolesByAdminId(Integer adminId);

    //通过用户ID查询用户所拥有的角色列表，以及每个角色所拥有的权限列表
    List<Role> findRolesAndMenusByAdminId(Integer adminId);

    // 通过操作员用户ID查询其拥有菜单URL集合
    List<String> findMenuUrlByAdminId(Integer adminId);

}
